/***********************
 *	conv.c
 *	 
 *	Beschrijving : 
 *	Hier word de richting bepaalt. aan de hand van de
 *	uit gemiddelde waardes.
 *	 
 *	Gebruikte Pinnen:
 *	N.v.t.   
 * *********************/
#include "armboard3.h"
#include "lpc214x.h"
#include "I2C.h"
#include "conv.h"

extern  char xwaarde;
extern  char ywaarde;
extern  char zwaarde;

char xgemiddelde,ygemiddelde,zgemiddelde;

char x_gem,y_gem;

char conv_data(void)
{
/***********************
 *	Gemaakt door : Jeroen
 *	Functies : gem_data(); 
 *	Beschrijving : hier word de richting bepaalt. aan de hand van de
 *	uit gemiddelde waardes uit de functie gem_data(); 
 *
 *********************/
	char richting = 0;

	gem_data(); 
		
	if((xwaarde<10) | (xwaarde>0xf6)) // 10 | -10
	{
		if((ywaarde>=15) & (ywaarde<0x80)) /*-128*/ richting = 0x0C;  //15&-128// links
			else if((ywaarde<0xf1)  /*-15*/  & (ywaarde>=0x80)) /*-128*/ richting = 0x03; //-15&-128// rechts
	}
	
	else if((ywaarde<10) | (ywaarde>0xf6))   // 10 | -10
	{
		if((xwaarde>=15) & (xwaarde<0x80)) richting = 0xC0;	 //15 & -128	// achter
			else if((xwaarde<0xf1) & (xwaarde>=0x80)) richting = 0x30; //-15&-128 // voor
	}
	
	else richting = 0x00;	
		
	return richting;
}

void gem_data(void)
{	

/***********************
 *	Gemaakt door : Freek & Maikel
 *	Functies : i2c_lees(); 
 *	Beschrijving : Hier wordten de waardes opgevraagt van de accelerometer.
 *	Er worden 15 sampels genomen en daarvan het gemiddelde uit berekent.
 *********************/
 	int i, x_temp = 0, y_temp = 0;
	for (i=0;i < GEM_AANTAL; i++)  // telt de 15 sampels op
	{
		while(!(IO0PIN&1<<20));  // data klaar. 
		I2C_lees();			// haalt data op.
		
		x_temp = x_temp + xwaarde;  // telt de oude en nieuw waarde op
		y_temp = y_temp + ywaarde;  // telt de oude en nieuw waarde op
	}
	x_gem = x_temp/GEM_AANTAL ; 	// gemiddelde
	y_gem = y_temp/GEM_AANTAL ; 	// gemiddelde
		
}
